// * before(num,fn)接受两个参数，第一个参数是数字，第二个参数是函数，调用before函数num次数以内，返回与fn执行相同的结果，超过num次数返回最后一次fn的执行结果。考闭包的使用

function before(num, fn) {
    //? 记录次数
    let count = 0
    //? 超过num次数返回最后一次fn的执行结果 所以需要记录一下
    let pre
    return function (...args) {
        //? 次数内才更新pre
        if (count < num) {
            pre = fn(...args)
        }
        count ++
        return pre

    }
}

let func = before(3, (a, b) => a + b)
console.log(func(1, 2)); // 3
console.log(func(2, 3)); // 5
console.log(func(1, 6)); // 7
// 此时已经超过了次数 故结果为7
console.log(func(1, 8)); // 7
console.log(func(1, 8)); // 7
